package com.laozhao.framework.snow.view;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

import com.laozhao.framework.snow.AreaModel;
import com.laozhao.framework.snow.ItemModel;

public class MessageArea extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6496584755043310020L;
	
	private Icon MESAGE_ICON_INFO ;
	private Icon MESAGE_ICON_ERROR ;
	private Icon MESAGE_ICON_WARNING ;
	private Icon MESAGE_ICON_QUESTION ;

	private List<String> mesList = null;
	private String id;
//	private Icon icon;
	private String param;
	private String type;

	// action
//	private ActionListener checkListener;
//	private ActionListener eventListener;
	
	private Toolkit toolkit = Toolkit.getDefaultToolkit();
	
	public MessageArea(){
		super();
		MESAGE_ICON_INFO = new ImageIcon(toolkit.createImage(MessageArea.class.getResource("message_info.png")));
		MESAGE_ICON_ERROR = new ImageIcon(toolkit.createImage(MessageArea.class.getResource("message_error.png")));
		MESAGE_ICON_WARNING = new ImageIcon(toolkit.createImage(MessageArea.class.getResource("message_warning.png")));
		MESAGE_ICON_QUESTION = new ImageIcon(toolkit.createImage(MessageArea.class.getResource("message_question.png")));
		mesList = new ArrayList<String>();
	}
//	@Override
//	public String getDescription() {
//		return getToolTipText();
//	}
//
//	@Override
//	public void setDescription(String description) {
//		setToolTipText(description);
//	}
//
//
//	@Override
//	public Icon getIcon() {
//		return MESAGE_ICON_INFO;
//	}
//
//	@Override
//	public void setIcon(Icon icon) {
//		MESAGE_ICON_INFO = icon;
//
//	}
//	
//	@Override
//	public String getId() {
//		return id;
//	}
//
//	@Override
//	public void setId(String id) {
//		this.id = id;
//	}
//
//	@Override
//	public List<ItemModel> getItems() {
//		return null;
//	}
//
//	@Override
//	public void setItem(ItemModel item) {
//
//	}
//
//	@Override
//	public String getParam() {
//		return param;
//	}
//
//	@Override
//	public void setParam(String param) {
//		this.param = param;
//	}
//	@Override
//	public String getType() {
//		return type;
//	}
//
//
//	@Override
//	public void setType(String type) {
//		this.type = type;
//	}

//	@Override
//	public ActionListener getCheckListener() {		
//		return checkListener;
//	}
//
//	@Override
//	public void setCheckListener(ActionListener checkListener) {
//		this.checkListener = checkListener;
//	}
//
//	@Override
//	public ActionListener getEventListener() {
//		return eventListener;
//	}
//
//	@Override
//	public void setEventListener(ActionListener eventListener) {
//		this.eventListener = eventListener;
//	}

//	@Override
//	public Object getValue() {
//		return mesList;
//	}
	
//	@SuppressWarnings("unchecked")
//	@Override
//	public void setValue(Object value) throws ClassCastException {
//		if (value instanceof String) {
//			mesList.clear();
//			removeAll();
//			mesList.add((String)value);
//			add(new Message((String)value));
//		}else if (value instanceof List<?>) {
//			mesList = (List<String>) value;
//			for (String mes : mesList) {
//				add(new Message(mes));
//			}
//		}
//	}

//	class Message extends JPanel{
//		/**
//		 * 
//		 */
//		private static final long serialVersionUID = 3785007952650247908L;
//		static final String MESSAGE_TYPT_INFO = "info";
//		static final String MESSAGE_TYPT_WARNING = "warning";
//		static final String MESSAGE_TYPT_ERROR = "error";
//		static final String MESSAGE_TYPT_QUESTION = "question";
//		
//
//		private String messageType = "";
//		private JLabel messageLabel;
//		private JButton questionConfirmButton = new JButton("OK");
//		private JButton questionCanelButton = new JButton("Cancel");
//		public Message(String message) {
//			if (message != null && !"".equals(message)) {
//				messageLabel = new JLabel(MESAGE_ICON_INFO);
//				String[] mes = message.split(":");
//				if (mes.length == 2) {
//					messageLabel.setText(mes[1]);
//					messageType = (mes[0]);
//				}else {
//					messageLabel.setText(mes[0]);
//					messageType = MESSAGE_TYPT_INFO;
//				}
//				init();
//			}
//		}
//
//		public void init() {
//			setLayout(new BorderLayout(5,0));
//			add(messageLabel,BorderLayout.CENTER);
//			if (MESSAGE_TYPT_WARNING.equals(messageType)) {
//				messageLabel.setIcon(MESAGE_ICON_WARNING);
//				setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.YELLOW,Color.RED ));
//			}else if (MESSAGE_TYPT_QUESTION.equals(messageType)) {
//				messageLabel.setIcon(MESAGE_ICON_QUESTION);
//				setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.YELLOW,Color.GREEN ));
//				JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.TRAILING));
//				buttonPanel.add(questionConfirmButton);
//				buttonPanel.add(questionCanelButton);
//				questionConfirmButton.setActionCommand("questionConfirmButton");
//				questionCanelButton.setActionCommand("questionCanelButton");
//				questionConfirmButton.addActionListener(getEventListener());
//				questionCanelButton.addActionListener(getEventListener());
//				add(buttonPanel,BorderLayout.EAST);
//			}else if (MESSAGE_TYPT_ERROR.equals(messageType)) {
//				messageLabel.setIcon(MESAGE_ICON_ERROR);
//				setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.RED,Color.GRAY ));
////			}else {
////				setBorder(null);
//			}
//		}
//	}

}
